package com.weng.coder.service;

import java.util.Map;


/**
 * 代码 生成服务 
 *
 * @version 
 * @author wengzhonghui  2017年7月14日 下午4:19:20
 * 
 */
public interface CodeService {

	/**
	 * 根据表格ID和模板ID获取生成代码内容
	 * @param tableId
	 * @param templateId
	 * @param userName
	 * @return
	 */
	String generateCodeFileByTemplateAndTableId(String tableId,String templateId,String userName);
	/**
	 * 根据表格生成代码文件
	 * 
	 * @param templateIds
	 * @param tableIds
	 * @baseFilePath Web资源文件的根目录
	 * @return 返回Map，path:返回下载地址;existsClasss :Base项目中已存在的类;isGenerate:是否生成，0表示否，1表示是
	 */
	Map<String,Object> generateCodeFile( String[] templateIds, String[] tableIds,String baseFilePath
    		,String isCatalog ,String username);
	
    /**
     * 获取生成文件路径
     * 
     * @param templateId
     * @param tableId
     * @return
     */
    String getPath( String templateId, String tableId);

    
    /**
     * 获取生成代码名称
     * 
     * @param templateId
     * @param tableId
     * @return
     */
    String getName( String templateId, String tableId);

    
    /**
     * 生成代码 
     * 
     * @param templateId
     * @param tableId
     * @return
     */
    String getGeneratedCode( String templateId, String tableId,String userName);
    
    /**
     * 生成整个项目的代码，在下载基础项目代码时使用
     * 
     * @param templateIds
     * @param tableIds
     * @param tarFile 生成代码的目标路径
     * @param isCatalog 是否目录  1表示是
     * @return 返回base项目中已有的类，提示不重复生成
     */
    String generateCodeFileByAll( String[] templateIds, String[] tableIds,String tarFile
    		,String isCatalog,String username );
}
